package com.fate.system.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.fate.system.dto.userorg.UserOrgPageDTO;
import com.fate.system.entity.UserOrg;
import java.util.List;
import java.util.Map;

/**
 * @author 47349
 * @description 针对表【sys_user_org(用户组织架构映射表)】的数据库操作Service
 * @createDate 2024-08-09 02:15:40
 */
public interface IUserOrgService extends IService<UserOrg> {

  /**
   * 分页获取列表
   *
   * @param pageDTO
   * @return
   */
  Page<UserOrg> getPageList(UserOrgPageDTO pageDTO);

  /**
   * 根据组织机构id获取该组织以及其自组织用户id
   *
   * @param orgIds 组织机构ids
   * @return 该组织以及其自组织用户id
   */
  List<String> getUserIdListByOrgIds(List<String> orgIds);

  /**
   * 获取用户所属组织
   *
   * @param userId 用户id
   * @return 用户所属组织
   */
  Map<String, List<String>> getUserId2OrgNameMap(List<String> userId);

  /**
   * 设置用户所属组织
   *
   * @param userId 用户id
   * @param orgId 机构id
   */
  void setUser2Org(String userId, String orgId);

  /**
   * 删除用户所属组织
   *
   * @param userId 用户id
   * @param orgId 机构id
   */
  void removeUserFromOrg(String userId, String orgId);
}
